/********************************************
 *  链栈
 * Created by zlj on 2024/6/26.
********************************************/

#ifndef DATA_STRUCTURE_LINKSTACK_H
#define DATA_STRUCTURE_LINKSTACK_H

#include "option_config.h"

/**
 * Initization
 * @param s
 */
void InitLinkStack(LinkStack *s);

/**
 * 入栈
 * @param s
 * @param x
 */
void LinkStack_Push(LinkStack *s,ElemType x);

/**
 * 打印
 * @param s
 */
void LinkStack_Show(LinkStack *s);

/**
 * 出栈
 * @param s
 */
void LinkStack_Pop(LinkStack *s);

/**
 * 判断是否为空
 * @param s
 * @return
 */
bool LinkStack_IsEmpty(LinkStack *s);

/**
 * 取栈顶元素
 * @param s
 * @param v
 * @return
 */
bool LinkStack_GetTop(LinkStack *s,ElemType *v);

/**
 * 获取元素个数
 * @param s
 * @return
 */
int LinkStack_Length(LinkStack *s);

/**
 * 清空
 * @param s
 */
void LinkStack_Clear(LinkStack *s);

/**
 * 销毁
 * @param s
 */
void LinkStack_Destory(LinkStack *s);

#endif //DATA_STRUCTURE_LINKSTACK_H
